spread operator vs rest operator